#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1100;
int v[N],w[N];
int f[N];
int main(){
	int t;
	cin>>t;
	while(t--){
		int n,m;
		cin>>n>>m;
		memset(v,0,sizeof v);
		memset(w,0,sizeof w);
		
		for(int i=1;i<=n;i++)cin>>v[i];
		for(int i=1;i<=n;i++)cin>>w[i];
		for(int i=1;i<=n;i++){
			for(int j=m;j>=v[i];j--){
				f[j]=max(f[j],f[j-v[i]]+w[i]);
			}
		}
		cout<<f[m]<<endl;
	}
	
	return 0;
} 
